package org.yscz.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.web.multipart.MultipartFile;
import org.yscz.entity.Testee;
import org.yscz.entity.TesteeGroup;
import org.yscz.entity.vo.TesteeVo;

import java.util.List;
import java.util.Map;

/**
 * @program: pe
 * @description: 被测人业务层
 * @author: muqs
 * @create: 2021-08-22
 **/
public interface TesteeService extends IService<Testee> {

    /**
     * 新增被测人
     *
     * @param testeeVo 被测人信息
     * @return testeeVo对象
     */
    TesteeVo add(TesteeVo testeeVo);

    /**
     * 修改被测人
     *
     * @param testeeVo 被测人信息
     */
    void modify(TesteeVo testeeVo);

    /**
     * 删除被测人
     *
     * @param testeeId 被测人ID
     */
    void del(Long testeeId);

    /**
     * 获取被测人列表
     *
     * @param page      分页
     * @param condition 查询条件
     */
    IPage<TesteeVo> listPageByCondition(IPage<TesteeVo> page, Map condition);

    /**
     * 获取班级列表
     */
    List<TesteeGroup> queryTesteeGroup();

    /**
     * 获取班级列
     *
     * @param testeeId 被测人ID
     */
    TesteeVo testeeDetail(Long testeeId);

    /**
     * 导入被测人信息
     *
     * @param multipartFile excel文件
     */
    void importExcel(MultipartFile multipartFile);

    /**
     * 获取被测人列表-手动选择被测人
     *
     * @param page      分页
     * @param condition 查询条件
     */
    IPage<TesteeVo> manualSelect(IPage<TesteeVo> page, Map condition);
}
